Electromagnetic monitoring and control of a plurality of nanosatellites

ABSTRACT

A method for monitoring position of and controlling a second nanosatellite (NS) relative to a position of a first NS. Each of the first and second NSs has a rectangular or cubical configuration of independently activatable, current-carrying solenoids, each solenoid having an independent magnetic dipole moment vector, μ1 and μ2. A vector force F and a vector torque are expressed as linear or bilinear combinations of the first set and second set of magnetic moments, and a distance vector extending between the first and second NSs is estimated. Control equations are applied to estimate vectors, μ1 and μ2, required to move the NSs toward a desired NS configuration. This extends to control of N nanosatellites.

SOURCE OF THE INVENTION

The invention described herein was made by an employee of the United States Government and may be manufactured and used by or for the Government of the United States of America for governmental purposes without the payment of any royalties thereon or therefore.

FIELD OF THE INVENTION

This invention relates to characterization and control of one or more nanosatellites by a designated control nanosatellite, using magnetic field measurements.

BACKGROUND OF THE INVENTION

Ideally, monitoring and controlling one or more of a plurality of nanosatellites relative to a reference body or reference position would allow (i) control of relative motion of each of the nanosatellites, (ii) power or energy transfer between two or more of the nanosatellites, and (iii) data communication between two or more of the nanosatellites. However, this monitoring of position requires reasonably accurate specification of vector coordinates of the nanosatellites that interact with each other. At first impression, the number of independent equations appears to be less than the number of independent variables, such as location coordinates, which presents a problem for a complete specification. This problem can be resolved in some configurations and may be extendable to other geometric configurations as well.

Electromagnetic controller satellite formation has been studied for large satellites and has been studied and constructed for small satellites. The operating distances for previous applications requires significant electrical power. For example, an implementation of single access control for a large satellite requires more than 300 Watts. A typical nanosatellite operates on 2.5-10 Watts of power, which makes a large satellite impractical for nanosatellite use.

Design of three-axis control in the prior art uses a configuration that generates a single magnetic dipole that can be oriented in any direction. When two satellites in such a system are pushing or pulling in unison, the dipoles are aligned, which does not allow relative orientation of the two satellites without use of some reaction device, such as mechanical reaction wheels.

For efficient control, at least one of a plurality of satellites requires information on relative location and relative orientation of each of the other satellites. Satellite systems in the prior art resolve this requirement by assuming that each satellite knows its own location and orientation and frequently transmits this information to a reference satellite. This is a costly process for accurate detection in a nanosatellite system. GPS or a similar process can only be used once or twice per day, because of the large associated power consumption. Each participating satellite in such a system must use a radio device to transfer this information to the reference satellite. Because of the fast response of a control system, the increasing “staleness” of the information, and the time required to transfer this information, operation may tend to destabilize the control system. For example, a satellite system recently tested on the I.S.S. required that the control system processing rate be reduced by a factor of about ten, in order to deal with this latency and avoid destabilization. The smallest electromagnet presently available measures 77 cm by 13 cm, but the smallest nanosatellite has dimensions of about 10×10 by 10 cm.

What is needed is a nanosatellite control system that avoids or minimizes the impact of these limitations: (1) large power consumption; (2) use of additional reaction wheel to manage single dipole limitation; (3) each satellite has knowledge of its location and orientation information; and (4) sensing device for each satellite determining its own location and orientation.

SUMMARY OF THE INVENTION

A reference nanosatellite establishes a Cartesian or other three dimensional coordinate system (x,y,z) for an array of two or more nanosatellites, including the reference. One, two, three or more perpendicularly oriented solenoids associated with each nanosatellite allow three dimensional control of the magnetic moment μ associated with a magnetic moment source.

In lowest order or degree of d, a magnetic field vector B(d) produced by a magnetic moment vector μ (assumed to be known and controllable) is a linear vector relationship between B(d) and m, and this relationship is homogeneous (of degree −3) in the scalar magnitude (d=|d|) of the distance vector d. The vector d extends between two nanosatellites and is expressed as a scalar d, multiplied by a unit length vector α=(αx, αy, αz), whose components are direction cosines of the vector d, referenced to the (x,y,z) Cartesian coordinated system. A magnetic moment μ associated with a given nanosatellite is controlled by increasing or decreasing the current I moving through one or more of the solenoids on the nanosatellite.

The vector components of α are expressed as a linear sum of perpendicular components, μ, B(d)_(perp) and μ×B(d)_(perp), where B(d)_(perp) =B(d)−(B·μ)μ/|μ|²  (1) is an augmented component of B(d), orthogonal to the magnetic moment vector μ. The distance vector d is expressed as a linear combination of the vector components μ, B(d)_(perp) and μ×B(d)_(perp), with linear combination coefficients that are determined from the original magnetic field flux equation, B(d)=(μ0/4πd ³){μ−(μ·d)d/d ²}=(μ0/4πd ³){μ−(μ·α)α},  (2) where μ is magnetic permeability of a vacuum and α=d/|d| is not yet known.

The scalar distance d=|d| and the directional vector α=d/|d| are estimated. All relevant components of the local electromagnetic field force vector(s) F and local torque τ are thus determined, for each of one, two, three or more magnetic moment sources associated with a nanosatellite and for time-dependent sets of measurements. As these measurements are continued for a sequence of time intervals, the corresponding sequences of distance vectors d (computed) and magnetic vectors μ (measured and controlled for each magnetic field source) are available to compute torque vectors τ12 and force vectors F12, which act to move two or more interacting magnetic moment sources, μ1 and μ2, from initial locations and orientations to subsequent locations and orientations.

In one embodiment, it is assumed that vector orientation of each magnetic moment μ for a nanosatellite is known and that an associated magnetic field strength vector B can be measured at any point corresponding to location of another nanosatellite in the system. In other embodiments, the vector orientation of each magnetic moment in is not initially known but is estimated using measurements of a magnetic field strength vectors, B1 and B2, for activation of each of two or more solenoids associated with each nanosatellites. In each of these situations, a distance vector d=dα (angular orientation a and scalar distance d) and orientation of corresponding solenoids relative to the distance vector d are estimated, using a second system of orthogonal coordinates corresponding to the vectors B1, B2_(perp)=B2−(B1·B2)B1/|B1|², and B1×B2_(perp). This provides vector separation information for each nanosatellite in the system, which is assumed to have a system diameter no greater than about 4 meters.

In one embodiment of an alignment and control system, force-induced and torque-induced motions in a plane of each of one, two, three or more solenoids of rectangular shape, each lying in the same plane, are computed at a selected sample rate, such as about 10 Hz, and the motion of each of the solenoids is visually displayed for each sampling time.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically illustrates use of a single known normalized magnetic dipole moment vector μ^ and corresponding magnetic field strength vector B to estimate a distance vector d extending between first and second nanosatellites, relative to a coordinate system determined by μ and B, and use of this information to estimate electromagnetic forces and torques on a given nanosatellite, according to a first embodiment.

FIGS. 2, 4 and 6 are flow charts of different procedures for estimating distance vectors d and angular orientations of non-reference nanosatellites relative to a reference nanosatellite.

FIG. 3 graphically illustrates variation of a length squared L(ψ−ψ0)²=|μ^−(μ^·α)α|²) as a function of an angle ψ−ψ0 between the normalized distance vector α and the normalized magnetic moment vector μ^.

FIG. 5 illustrates orientation of α for one embodiment.

FIG. 7 illustrates two solenoid cubes (i=1 and k=2) confined to a plane P(x,y).

FIG. 8 is a general flow chart for practicing the invention.

DESCRIPTION OF THE INVENTION

One challenge in monitoring and controlling one or more nanosatellites, using electromagnetic forces and torques, is determination of all relevant components of the three dimensional distance vectors that naturally arise in description of the physical parameters and resulting forces in such an environment. Beginning with the expression in Eq. (2) for a magnetic field flux that is generated by presence of a known magnetic moment μ, one is first confronted with estimation of the distance vector d (with source at a center of the magnetic moment source or associated solenoid(s)) at the point of measurement of the magnetic field B(d). Equation (2) is analyzed to estimate the vector components of d, using the known magnetic moment vector μ and the measurable field vector B(d). Equation (2) is rewritten as B′(d)=(4π/μ0)B(d)={μ−(μ·d)d/d ² }/d ³={μ−(μ·α)α}/d ³.  (3) d=dα,  (4) where α is a normalized vector (|α|=1) whose direction is parallel to the (unknown) direction of d. The normalized distance vector α is re-expressed as a sum of components, α=αn1^+bn2^+cn3^,  (5) where n1^, n2^ and n3^ are mutually perpendicular vectors, each of unit length, and a, b and c are to be estimated. Note that both the scalar value d and the vector α are initially unknown. One suitable set of choices for the vectors n1^, n2^ and n3^ is n1^=μ^=μ/|μ,  (6A) n2^={B′−(B′·μ^)μ^}/|B′−(B′·μ^)μ^|,  (6B) n3^=n1^×n2,  (6C) (n1^)²=(n2^)²=(n3^)²=1.  (6D)

Using the decompositions set forth in Eqs. (4), (5) and (6), Eq. (3) can be rewritten

$\begin{matrix} \begin{matrix} {{{B^{\prime}(d)}/\mu} = {\left\{ {B^{\prime} - {\left( {B^{\prime} \cdot \mu^{\bigwedge}} \right)\mu^{\bigwedge}} + {\left( {B^{\prime} \cdot \mu^{\bigwedge}} \right)\mu^{\bigwedge}}} \right\}/\mu}} \\ {{= {\left\{ {\mu^{\bigwedge} - {\left( {\mu^{\bigwedge} \cdot \alpha} \right)\alpha}} \right\} d^{3}}},} \\ {= \left\{ {{\mu^{\bigwedge} - {a{\left\{ {{a\;\mu^{\bigwedge}} + {b\mspace{11mu} n\; 2^{\bigwedge}} + {c\mspace{11mu} n\; 3^{\bigwedge}}} \right\}/d^{3}}}},} \right.} \\ {= \left\{ {{\left( {1 - (a)^{2}} \right)\mu^{\bigwedge}} - {({ab}){\left\{ {B^{\prime} - {\left( {\mu^{\bigwedge} \cdot B^{\prime}} \right)\mu^{\bigwedge}}} \right\}/}}} \right.} \\ {{\left. {{B^{\prime} - {\left( {\mu^{\bigwedge} \cdot B^{\prime}} \right)\mu^{\bigwedge}}}} \right\}\left( {1/d^{3}} \right)},} \end{matrix} & (7) \end{matrix}$ where the term involving the vector n3^ is dropped here because this vector only appears in one term in Eq. (7) (equivalent to c=0). Equation (7) can be rewritten by collecting all coefficients involving the vector μ^ and all coefficients involving the perpendicular vector B′−(B′·μ^)μ^ in Eq. (7), (1/μ){B′−((B′·μ^)μ^+(B′·μ^)μ^}={(1−a ²)μ^−ab{B′−(B′·μ^)μ^}/|(B′−B′·μ^)μ^|}(1/d ³).  (8) Separately collecting all coefficients of each of the two vectors μ^ and B′−(B′·μ^)μ^ yields the relations (1−a ²)/d ³=(B′·μ^)/μ,  (9) b=(−d ³ /aμ)|B′−((B′·μ^)μ^|,  (10) 1−a ² −b ²=(B′·μ^)d ³/μ,−(1/a ²)|(B′−B′·μ^)μ^|² d ⁶/μ²,   (11) a ² ={B′ ²−(B′·μ^)² μ^}d ³//μ(B′·μ^)  (12) d ³(B′)²/(B′·μ)=μ,  (13)

Equations (7) and (9)-(13) determine the quantities d and a, and the distance vector d. The vector quantities B′(d) and B(d) are measurable for any selected distance vector d.

One suitable procedure is the following, illustrated in a flow chart in FIG. 2. In step 21, a first magnetic moment μ1, associated with the reference and controllable by the associated solenoid current, is selected. In step 22, a magnetic field, B′(d) or B(d), whose source is the magnetic moment μ1, is measured at a selected distance vector d=d12 (not yet estimated), which extends from a center of the reference to a center of a second (non-reference) nanosatellite. In step 23 (optional), the distance vector d12=dα is estimated for a location of the center of the second nanosatellite or associated solenoid relative to the center of the reference. Steps 22 and 23 can be repeated to estimate a distance vector d for location of the center of each non-reference nanosatellite solenoid.

Electromagnetic forces, F12 and F21=−F12 and the corresponding torques, τ12 and τ21=τ12 are computed in this two-moment system, the center locations for each non-reference nanosatellite are incremented for a sequence of time increments Δt.

A second method for estimation of the direction, in a plane P, of the normalized distance vector d uses a combined activation of two distinct solenoids to provide a first hybrid magnetic moment, μ1′=j1μ1+k1μ2, and to provide a second hybrid magnetic moment, μ2′=j2μ1+k2μ2, where μ1 and μ2 are magnetic moments of equal magnitude μ produced by activation of only the first solenoid and by activation of only the second solenoid, respectively, and j1, k1, j2 and k2 are selected coefficients, with j1/k1≠±j2/k2 and |μ1|=|μ2|=μ. Equation (3) is re-expressed for normalized magnetic moments, μ1^ and μ2^, as B1′(d)=(4π/(μμ0)B1(d)={μ1′^−(μ1′^·α)α}/d ³,  (14) B2′(d)=(4π/(μμ0)B2(d)={μ2′^−(μ2′^·α)α}/d ³,  (14) |μ1^|=μ2^|=1.  (16)

The vector lengths |B1′(d)| and |B2′(d)| will generally have different values, because the scalar products (μ1′^·α) and (μ2′^·α) will have different values. In a graphical illustration in FIG. 3, it is assumed that μ1′^·α=cos ψ1 and μ2^·α=cos ψ2 and that an angle value, ψ=ψ0, that minimizes the quantity L(ψ)²=|μ′^−(μ′^·α)α={1−(μ′^·α)²}=1−cos²(ψ−ψ0)  (17) is not yet known. The quantities L(ψ1)² and L(ψ2)² are measurable, using Eqs. (14)-(17), and can be re-expressed as

$\begin{matrix} {\begin{bmatrix} {\cos\left( {2\;\psi\; 1} \right)} & {\sin\left( {\psi\; 1} \right)} \\ {\cos\left( {2\psi\; 2} \right)} & {\sin\left( {2\psi\; 2} \right)} \end{bmatrix}\begin{bmatrix} {{\cos\left( {2\psi\; 0} \right)} = {1 - {2{L\left( {\psi\; 1} \right)}^{2}}}} \\ {{\sin\left( {2\psi\; 0} \right)} = {1 - {2{L\left( {\psi\; 2} \right)}^{2}}}} \end{bmatrix}} & (18) \end{matrix}$ where the angle ψ0 is to be estimated and other quantities are determinable. The 2×2 matrix in Eqs. (18) has an associated determinant, with a value, Det=sin 2(ψ2−ψ1), whose magnitude can be made as large as possible by one of the choices ψ2−ψ1=±π/4, ±3π/4. The solutions of Eqs. (18) are

$\begin{matrix} {\begin{bmatrix} {\cos\left( {2\psi\; 0} \right)} \\ {\sin\left( {2\psi\; 0} \right)} \end{bmatrix}{{\begin{matrix}  = \\  =  \end{matrix}\begin{bmatrix} {\sin\left( {2\psi\; 2} \right)} & {- {\sin\left( {2\psi\; 1} \right)}} \\ {- {\cos\left( {2\psi\; 2} \right)}} & {\cos\left( {2\psi\; 1} \right)} \end{bmatrix}}\begin{bmatrix} {\left\{ {1 - {2{L\left( {\psi\; 1} \right)}^{2}}} \right\}/{Det}} \\ {\left\{ {1 - {2{L\left( {\psi\; 2} \right)}^{2}}} \right\}/{Det}} \end{bmatrix}}} & (19) \end{matrix}$ The solution angle, ψ=ψ0, provides the angle at which the normalized distance vector α is oriented relative to the direction of the first magnetic moment μ1 in the plane P=P(x,y), as illustrated in FIGS. 1 and 3. This alternative procedure provides a second procedure for estimating the normalized distance vector α. After the distance vector d=dα. has been estimated, Eq. (3) may be used to estimate the scalar distance value d.

FIG. 4 is a flow chart of a second embodiment of a procedure for estimating the normalized distance vector α and the scalar distance value d. In step 41, first and second magnetic moments, μ1 and μ2, and hybrid magnetic moments, μ1′ and μ2′, as linear combinations of μ1 and μ12 (with associated angles ψ1 and ψ2), are provided for the reference satellite. In step 42, the length proportions squared, L(ψ1−ψ0)²=|μ1′^−(μ1′^·α)α|² and L(ψ2−ψ0)²=|μ2′^−(μ2′^·α)α|², are measured for known and distinct angles ψ=ψ1 and ψ=ψ2 for the hybrid magnetic moments, μ1′ and μ2′. Here, ψ=ψ0 is an angle value, unknown as yet, that minimizes the length squared value L(ψ−ψ0)².

In step 43, solutions, cos ψ0 and sin ψ0, are estimated for the equations cos(2ψ1)cos(2ψ0))+sin(2ψ1)sin(2ψ0)=1−2L(ψ1)², cos(2ψ2)cos(2ψ0))+sin(2ψ2)sin(2ψ0)=1−2L(ψ2)². In step 44, the solution angle, ψ=ψ0, is interpreted as the angle that distance vector d makes with a non-hybrid, magnetic moment vector μ1 or μ2. This indicates a direction in the plane P(x,y) for the normalized distance vector α. In step 45 (optional), the scalar distance value d=|d| is estimated, using, for example, Eq. (3).

The developments of Eqs. (3)-(15), or (16)-(22), assume that the magnetic moment vector μ and the corresponding measured magnetic field vector B(d) are known. This requires knowledge of B(d) and μ for a single (initially unknown) distance vector d at which the field is measured. Alternatively, both the distance vector d and the direction of the moment μ may be unknown initially, although the magnitude, |μ|=μ may be known, through control of the current supplied to the solenoid. In this situation, it is assumed that two solenoids, each with the same magnetic moment magnitude, |μ1|=|μ2|=μ, are oriented at a known, non-zero angle (preferably π/2) relative to each other, that the two solenoids are associated with each other at a common end, and that the electromagnetic forces and motions are confined to a plane P(x,y). The moments are expressed as analogous to Eqs. (3) and (4): B1(d)=(μ0/4πd ³){μ1−(μ1·d)d/d ²)=(μ0/4πd ³){μ1−(μ1·α)α},  (20) B2(d)=(μ0/4πd ³){μ2−(μ2·α·d)d/d ²)=(μ0/4πd ³){μ2−(μ2·α)α}  (21) d=dα,  (22) where the two solenoids have (approximately) a common distance vector d, whose angular orientation relative to the directions of the first and second solenoid sin the plane P(x,y) is initially unknown. Note that the field vectors B1 and B2 are each perpendicular to the vector d or a: B1·α=0,  (23A) B2·α=0,  (23B) although generally |B1|≠|B2|, because the moments μ1 and μ2 are generally oriented differently relative to the vector α.

Introduce new unit length vectors, which are measurable, n1^=B1/|B1|,  (24) n2^=B2/|B2|,  (25) n2′^={n2^−(n1^·n2)n1^}/|n2^−(n1^·n2)n1^|,  (26) n3^=n1^×n2′^,  (27) where n1^, n2′^ and n3′ are mutually perpendicular and each has unit length. The normal forms of a plane P1 with normal vector B1 and of a plane P2 with normal vector B2 are n1^·s−|B1|=0,  (28) n2′^·s−|B2|=0,  (29) where s=(x,y,z) is a coordinate vector in the coordinate system adopted here and |B1| and |B2| are the lengths of a first normal vector (n1^) and a second normal vector (n2′^), extending from the coordinate origin to the first plane P1 and from the coordinate origin to the second plane P2, respectively. Each of the planes, P1 and P2, contains the distance vector d, and the two normal vectors, n1^ and n2′^, (or n1^ and n2^) are not parallel. The intersection of the planes P1 and P2, therefore, defines a common line CL, which is parallel to the distance vector d.

Express the common line CL, lying in the intersection P1ΩP2, as a vector s=s1n1^+s2n2′^+s3n3^.  (30) The coefficients s1, s2 and s3 are determined using the normal forms in Eqs. (28) and (29): n1′^·s−|B1|=s1(n1^·n1^)+s2(n1^·n2′^)+s3(n1^·n3^)−|B1|=0,  (31) n2′^·s−|B2|=s1(n2′^·n1^)+s2(n2′^·n2′^)+s3(n2′^·n3^)−|B2|=0,  (32) Taking account of the mutual orthogonality of n1^, n2′^ and n3^, a solution of Eqs. (31) and (32) is s1=|B1|,  (33A) s2=|B2|,  (33B) s3 is not determined.  (33C) The intersection line CL is expressible as s=|B1|n1^+|B2|n2′^+s3n3^,  (34) α=s/|s|,  (35) which defines a direction of the normalized distance vector α=d/|d|. FIG. 5 illustrates formation of the normalized distance vector α. This requires that B1 and B2 not be parallel, but does not require that B1 and B2 be perpendicular.

The scalar value d of the distance vector d is estimated using the relation |B1|² +|B2|²=(μ0/4πd ³)²{2μ²−μ²(cos² ψ+sin² ψ)}=(μ0/4πd ³)²μ²,  (36) where ψ is an angle between the vector α in the plane P(x,y) and the vector direction μ1^. The angle ψ itself, illustrated in FIG. 5, is estimated using the relation

$\begin{matrix} \begin{matrix} {{B\;{1 \cdot B}\; 2} = {\left( {\mu\;{0/4}\pi\; d^{3}} \right)^{2}\left\{ {{\mu\;{1 \cdot \mu}\; 2} - {\mu^{2}\;\cos\;\psi\;\sin\;\psi}} \right\}}} \\ {\left. {= {{- \left( {\mu\;{0/4}\pi\;\mu^{3}} \right)^{2}}\left( {\mu^{2}/2} \right)\sin\; 2\;\psi}} \right\},} \end{matrix} & (37) \end{matrix}$ where it is assumed here that the scalar value d is already estimated and that the magnetic moments μ1 and μ2 are orthogonal to each other so that μ1, μ2=0. These procedures, using Eqs. (34)-(35) or Eqs. (36)-(37), provide third and fourth alternative approaches to estimation of the scalar value d and the normalized distance vector α, which do not require ab initio knowledge of the separate vector directions of the magnetic moments μ1 and μ2, only the requirement that μ1μ2=0.

A suitable procedure for these alternatives is illustrated in a flow chart in FIG. 6. In step 61, the reference causes each non-reference nanosatellite, to generate two or more distinct magnetic moments, μ1 and μ2, by activating two or more solenoids on the non-reference nanosatellite at separate times. In step 62, a magnetic field strength vector, B1 and B2, for the respective magnetic moments is generated and measured at the center of the reference solenoids. In step 63, the distance vector d, extending from the center of the non-reference nanosatellite solenoid(s) to the center of the reference solenoid(s), is estimated, using the common line CL of intersection between the planes, P1 and P2, generated by the plane normals, B1 and B2. In step 64, the directions for the magnetic moments, μ1 and μ2, associated with the non-reference nanosatellite, are estimated. The angles (ψ, π/2−ψ) in the plane P between the distance vector d and the respective magnetic moments, μ1 and μ2, are estimated, in step 65. This determines the location coordinates of the center of the non-reference nanosatellite solenoid(s) and the angular orientation of the non-reference nanosatellite, relative to the center and coordinate axes orientation of the reference. In this embodiment, solenoids that produce the magnetic moments, μ1 and μ2, are activated on a non-reference nanosatellite, the corresponding magnetic field vectors, B1 and B2, thus produced are measured at the reference nanosatellite, and the corresponding angular orientations of the solenoids (indicated by μ1 and μ2) on the non-reference nanosatellite are estimated, using the angle pair (ψ, π/2−ψ) estimated at the reference. In step 66 (optional), the scalar distance value d is estimated, using Eq. (3). The roles of the reference and non-reference nanosatellites can be exchanged.

Application of Distance Vector Information to Satellite Location and Control.

In the development and application of the control law to follow, equations of motion of each of first and second solenoid rectangles (referred to herein as “cubes), relative to each other are developed. The first and second solenoid cubes lie in a common plane P(x,y), illustrated in FIG. 7, and their subsequent motions are expressed in terms of motions only in this common plane. This model of two interacting cubes, the first a reference nanosatellite (i=1) and the second a controlled nanosatellite (k=2) is then extended to one reference satellite and to N−1 controlled nanosatellites (k=2, . . . , N), all lying in the common plane P(x,y) and each with its own activatable solenoids.

The first or reference cube (i=1) is defined by four line segments, indexed as j=1, 2, 3, 4, and by a cube center c1. Each of the four line segments for the first cube has a pair of indices, (ij)=(1,1), (1,2), (1,3) and (1,4), as illustrated in FIG. 7. In a similar manner, the second (controlled) nanosatellite (indexed here as k=2 or as k=2, 3, . . . , N) is defined by each of four line segments (m=1, 2, 3, 4) and by a center c2, with the pair of indices (k,m)=(2,1), (2,2), (2,3) and (2,4). Motions of the second nanosatellite (translation of the center, rotation about the center) are preferable stated with reference to location and angular orientation of the first or reference nanosatellite. Each solenoid (line segment) of each of the first and second nanosatellites is independently activated, and the magnitude and direction of the solenoid electrical current is independently selected.

Each of the four solenoid line segments that defines a nanosatellite solenoid (i=1 and k=2) has a line segment center. A distance vector, d=d(ij;k,m) (also written as d_(ijkm) in the following) extending between a line segment (i,j) and a line segment (k,m) connects these two line centers in the development to follow. Each pair of solenoid line segments, (i,j) and (k,m), on the first and second cubes, respectively, has an associated pair of magnetic dipole moment vectors, μ_(i,j) and μ_(k,m), independently chosen, and an associated distance vector d_(ijkm). Each of the quantities, μ_(i,j), μ_(km), and d_(ijkm) will vary with time. A magnetic dipole moment, μ_(i,j) and/or μ_(km) may be 0 if that particular solenoid is not presently activated. More generally, each magnetic dipole moment vector, μ_(i,j) and/or μ_(km) may have a vector value 0 during one or more time intervals and may have a non-zero vector value during one or more other time intervals. The magnetic dipole moment vectors, μ_(i,j) and μ_(km), will be chosen during each time interval to move the two cubes (more generally, to move the N cubes) toward a desired cube configuration (relative location and relative angular orientation) over the course of time, and the desired cube configuration may change with passage of time. The preceding formalism for two nanosatellites is extended to a first (reference) nanosatellite and N−1 controlled or non-reference nanosatellites, all lying in a common plane P(x,y), where N is a reasonable number (e.g., N=2-20).

The length Δt of all time intervals may be uniform (e.g., Δt=0.1 sec), or the time interval length may itself vary with time (e.g., Δt=0.01-0.5 sec) according to the rate at which the present cube configuration is to approach a desired cube configuration. Movement of the different cubes toward a desired cube configuration is facilitated by temporally varying values of a force vector F_(ijkm) and/or by a temporally varying electrical torque vector τ_(ijkm). The force vectors F_(ijkm) and/or the torque vectors τ_(ijkm) vary in response to the temporally changing (non-zero) magnetic dipole moments, μ_(i,j) and/or μ_(km), and the temporally changing solenoid distance vectors d_(ijkm).

FIG. 8 is a general flow chart illustrating broadly a procedure for a time interval sequence to estimate distance vectors d, magnetic dipole moment vectors μ, force vectors F, torque vectors τ, and solenoid commands that are presently estimated to be required to move a present cube configuration toward a desired cube configuration. In step 81, an initial time interval, t_(n)≦t<t_(n+1) with n=0, is identified. In step 82, a present distance vector, d=d_(n) is estimated for each nanosatellite, relative to a first (reference) nanosatellite, using magnetometer measurements and magnetic dipole moment vectors μ_(n), if known, for each nanosatellite, for the present time interval (t_(n)≦t<t_(n+1)). Step 82 may be implemented using any of the several embodiments discussed in connection with Eqs. (1)-(37), or any other suitable procedure for estimation of a distance vector, d=d_(n), for each relevant or active solenoid on each nanosatellite.

In step 83, a force vector F and a torque vector T are estimated for each nanosatellite that are required to move each nanosatellite toward a desired cube configuration, for the present time interval (t_(n)≦t<t_(n+1)). In step 84, a magnetic dipole moment vector μ is estimated for each solenoid on each nanosatellite that is required to provide the force vectors F and torque vectors τ, for the present time interval (t_(n)≦t<t_(n+1)). In step 85, the required solenoid commands (estimated in step 84) are executed, for the present time interval (t_(n)≦t<t_(n+1)). In step 86, the present time interval, t_(n)≦t<t_(n+1), is replaced by the next time interval, t_(n+1)≦t<t_(n+2) (equivalent to incrementing the time interval index n to n+1), and the system returns to step 82.

Implementation of Nanosatellite Control Commands.

Returning to FIG. 7, the force on a given cube is equal to the sum of all the force interactions between the EMs on one cube and the EMs on the other cube. The force on the i^(th) cube generated by the k^(th) cube is given by

$\begin{matrix} {{{Fc}_{i} = {\sum\limits_{j = 1}^{4}{\sum\limits_{{k = 1},{k \neq i}}^{\#{Cubes}}{\sum\limits_{m = 1}^{4}F_{ijkm}}}}},} & (41) \end{matrix}$ where F _(ijkm) =M _(F)(μ_(km) ,d _(ijkm))μ_(ij)  (42) Using the far field model, we have, from Appendix I,

$\begin{matrix} {{M_{F}\left( {\mu_{km},d_{ijkm}} \right)} = {{- \frac{3\mu}{4\;{\pi d}_{ijkm}^{5}}}\left( {\left( {d_{ijkm} \otimes \mu_{km}} \right) + \left( {\mu_{km} \otimes d_{ijkm}} \right) + {\left( {\mu_{km}^{T}{\bullet d}_{ijkm}} \right)\left( {I - {5\frac{d_{ijkm} \otimes d_{ijkm}}{d_{ijkm}^{T}{\bullet d}_{ijkm}}}} \right)}} \right)}} & (43) \end{matrix}$ The symbol

is the outer product operator.

Similarly, the torque on a given cube is the sum of all the torque interactions between the EMs on one cube and the EMs on the other cube, plus a cross product of the moment arm from the center of the cube to the center of the EM with the force on that EM. Thus, the torque on the i^(th) cube by the k^(th) cube is given by

$\begin{matrix} {{{\tau\; c_{i}} = {\sum\limits_{j = 1}^{4}{\sum\limits_{{k = 1},{k \neq i}}^{\#{Cubes}}{\sum\limits_{m = 1}^{4}\tau_{ijkm}}}}},} & (44) \end{matrix}$ where τ_(ijkm) =M _(τ)(μ_(km) ,d _(ijkm))μ_(ij),  (45)

$\begin{matrix} {{M_{\tau}\left( {\mu_{km},d_{ijkm}} \right)} = {{\frac{\mu_{0}}{4\;\pi}\left( {{\frac{3\left( {\mu_{km} \cdot d_{ijkm}} \right)}{d_{ijkm}^{5}}d_{ijkm}} - \frac{\mu_{km}}{d_{ijkm}^{3}}} \right)_{x}^{T}} + {{rc}_{ij} \times {M_{F}\left( {\mu_{km},d_{ijkm}} \right)}\mspace{14mu}{and}}}} & (46) \end{matrix}$ rc_(ij) the moment arm on from the center of the i^(th) cube to the center of the j^(th) EM The symbol ( )^(T), in Eq. (46) is the skew matrix.

To be able to control the nanosatellites, Eqs. (44)-(46) must be solved for the control input μ for each nanosatellite. To accomplish this, the μs will be determined in the reference frame that is attached to the body of the reference nanosatellite, referred to as the body frame.

To accomplish this, a transformation from the inertial frame to the body frame is needed. These μs will go through a rotation θ from the inertial frame to the body frame. Also note that the μs are note free to point in any arbitrary direction, the μs are fixed to the body frame, and thus the x-y components of each μ will be isolated by projection matrices, I_(x) and I_(y), associated with the x-axis and the y-axis. This can easily be extended to the z-axis.

To demonstrate this, we will work through the equations for two nanosatellites, which is easily extended to any reasonable number N of nanosatellites. The force acting on nanosatellite 1 (reference) can be written as Fc ₁ =M _(F) ₁₁ μ₁₁ +M _(F) ₁₂ μ₁₂ +M _(F) ₁₃ μ₁₃ +M _(F) ₁₄ μ₁₄  (47)

${Fc}_{1} = \begin{bmatrix} {Fc}_{1x} \\ {Fc}_{1\; y} \end{bmatrix}$ is the components of the force acting on nanosatellite 1 in the inertial frame, M _(F) ₁₁ =M _(F)(μ₂₁ ,d ₁₁₂₁)+M _(F)(μ₂₂ ,d ₁₁₂₂)+M _(F)(μ₂₃ ,d ₁₁₂₃)+M _(F)(μ₂₄ ,d ₁₁₂₄), M _(F) ₁₂ =M _(F)(μ₂₁ ,d ₁₂₂₁)+M _(F)(μ₂₂ ,d ₁₂₂₂)+M _(F)(μ₂₃ ,d ₁₂₂₃)+M _(F)(μ₂₄ ,d ₁₂₂₄), M _(F) ₁₃ =M _(F)(μ₂₁ ,d ₁₃₂₁)+M _(F)(μ₂₂ ,d ₁₃₂₂)+M _(F)(μ₂₃ ,d ₁₃₂₃)+M _(F)(μ₂₄ ,d ₁₃₂₄), M _(F) ₁₂ =M _(F)(μ₂₁ ,d ₁₄₂₁)+M _(F)(μ₂₂ ,d ₁₄₂₂)+M _(F)(μ₂₃ ,d ₁₄₂₃)+M _(F)(μ₂₄ ,d ₁₄₂₄)  (48) Resolving and isolating the components of μ in the body frame Eq. (41) is

$\begin{matrix} {{Fc}_{1} = {\left\lbrack {\begin{matrix} {{M_{F_{11}}{R(\theta)}I_{x}} + {M_{F_{12}}{R(\theta)}I_{y}}} & {{M_{F_{13}}{R(\theta)}I_{x}} + {M_{F_{14}}R}} \end{matrix}(\theta)I_{y}} \right\rbrack{\quad\begin{bmatrix} \mu_{11x} \\ \mu_{12\; y} \\ \mu_{13\; x} \\ \mu_{14\; y} \end{bmatrix}}}} & (49) \end{matrix}$ where μ_(ijx) and μ_(iky) represents the μs in the body frame,

$\begin{matrix} {{{I_{x} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix}},{I_{y} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix}},{and}}{{R\left( \theta_{1} \right)} = \begin{bmatrix} {\cos\;\theta_{1}} & {{- \sin}\;\theta_{1}} & 0 \\ {\sin\;\theta_{1}} & {\cos\;\theta_{1}} & 0 \\ 0 & 0 & 1 \end{bmatrix}}} & (50) \end{matrix}$ Applying the same process to the torque equation, we have

$\begin{matrix} {{\tau\; c_{1\; z}} = {\left\lbrack \begin{matrix} {{M_{\tau\; 11}{R\left( \theta_{1} \right)}I_{x}} + {M_{\tau\; 12}{R\left( \theta_{1} \right)}I_{y}}} & {{M_{\tau\; 13}{R\left( \theta_{1} \right)}I_{x}} + {M_{\tau\; 14}{R\left( \theta_{1} \right)}I_{y}}} \end{matrix} \right\rbrack{\quad\begin{bmatrix} \mu_{11\; x} \\ \mu_{12\; y} \\ \mu_{13\; x} \\ \mu_{14\; y} \end{bmatrix}}}} & (51) \end{matrix}$ where M _(τij) =M _(τ)(μ₂₁ ,d _(ij21))+M _(τ)(μ₂₂ ,d _(ij22))+M _(τ)(μ₂₃ ,d _(ij23))+M _(τ)(μ₂₄ ,d _(ij24)),

Writing Eqs. (50), (51 and (52) in matrix form, we have

$\begin{matrix} {\left\lbrack \begin{matrix} {Fc}_{1\; x} \\ {Fc}_{1y} \\ {Fc}_{1z} \end{matrix} \right\rbrack = {\quad{\left\lbrack \begin{matrix} {{M_{F_{11}}{R\left( \theta_{1} \right)}I_{x}} + {M_{F_{12}}{R\left( \theta_{1} \right)}I_{y}}} & {{M_{F_{13}}{R\left( \theta_{1} \right)}I_{x}} + {M_{F_{14}}{R\left( \theta_{1} \right)}I_{y}}} \\ {{M_{F\;\tau\; 11}{R\left( \theta_{1} \right)}I_{x}} + {{M_{F\;\tau\; 12}\left( \theta_{1} \right)}I_{y}}} & {{M_{F\;\tau\; 13}{R\left( \theta_{1} \right)}I_{x}} + {M_{F\;\tau\; 14}{R\left( \theta_{1} \right)}I_{y}}} \end{matrix} \right\rbrack{\quad\left\lbrack \begin{matrix} \mu_{11x} \\ \mu_{12\; y} \\ \mu_{13x} \\ \mu_{14y} \end{matrix} \right\rbrack}}}} & (53) \end{matrix}$ Using a pseudo inverse operator, we can solve for the μs. Note, we are using four variables to solve for three values. This is an extra degree of freedom in the control input that can be used to optimize another constraint, if desired. Control Law Signal.

In the previous section we showed that, given a desired force, torque applied to c₁, the distance from each EM on c₂ to each EM on c₁, and the μs of c₂ we can solve for the μs of c₁. Here we will explore a very simple feedback control law to demonstrate in simulation that given a desired relative position and pointing angle, c₁ can be driven to the desired position and angle by control of c₁'s μs.

Because we want to exercise relative position control, we will define RelativePosition as the relative position from c₂ to c₁, expressed as a vector. We formulate an error signal between the relative position vector and a desired relative position we call DesiredDistance. Error=RelativePosition−DesiredDistance.  (54)

For a linear time invariant plant, the proportional part of a PD controller is the Error multiplied by a gain. For an EM plant, this signal would be a force command Because force between two magnetic dipole moments is inversely proportional to the relative distance raised to the 4^(th) power, we compensate for this non-linearity by multiplying the Error signal by |RealtivePosition|⁴. To include damping, we multiply the difference between the velocities by a gain. The control law has the form pdSignal=Error kp|relativePosition|⁴+Error kd.  (55)

For the orientation of the nanosatellite we formulate an angle error signal. This will be a torque command. The torque between two magnetic dipole moments is inversely proportional to the relative distance raised to the 3rd power. Similar to above, we compensate for this by multiplying the error signal by |RelativePosition|³. To include damping, we multiply the angular velocity by a gain. The control law has the form of pdSignalw=angleError kw|relativePosition|³ +w kdw  (56)

To solve for the μs, we let Fx=pdSignalx, Fy=pdSignaly and τc_(1z)=pdSignalw, the control law can be written as

$\begin{matrix} {\begin{bmatrix} \mu_{11x} \\ \mu_{12y} \\ \mu_{13x} \\ \mu_{14y} \end{bmatrix} = {\left\lbrack \begin{matrix} {{M_{F_{11}}{R\left( \theta_{1} \right)}I_{x}} + {M_{F_{12}}{R\left( \theta_{1} \right)}I_{y}}} & {{M_{F_{13}}{R\left( \theta_{1} \right)}I_{x}} + {M_{F_{14}}{R\left( \theta_{1} \right)}I_{y}}} \\ {{M_{F\;\tau\; 11}{R\left( \theta_{1} \right)}I_{x}} + {{M_{F\;\tau\; 12}\left( \theta_{1} \right)}I_{y}}} & {{M_{F\;\tau\; 13}{R\left( \theta_{1} \right)}I_{x}} + {M_{F\;\tau\; 14}{R\left( \theta_{1} \right)}I_{y}}} \end{matrix} \right\rbrack^{- 1}{\quad\begin{bmatrix} {pdSignal}_{x} \\ {pdSignal}_{y} \\ {pdSignalw} \end{bmatrix}}}} & (57) \end{matrix}$

APPENDIX. CONTROL SIGNAL FACTORED OUT OF FORCE EQUATION

In this Appendix we introduce a matrix form of the force equation. Then we show how we write the force equation in this form. We then conclude with the general case of the force and torque acting on a nanosatellite from N−1 other nanosatellites, where N is the total number of nanosatellites.

A typical form of the force acting on an electromagnet (EM) due to another electromagnet using the far field model is

$\begin{matrix} {F_{1} = {{- \frac{3\mu_{0}}{4\;\pi\; d^{5}}}\left( {{\left( {\mu_{1}{\bullet\mu}_{2}} \right)d} + {\left( {\mu_{1}{\bullet d}} \right)\mu_{2}} + {\left( {\mu_{2}{\bullet d}} \right)\mu_{1}} - {5\frac{\left( {\mu_{1}{\bullet d}} \right)\left( {\mu_{2}{\bullet d}} \right)}{d^{2}}d}} \right)}} & (61) \end{matrix}$ where μ₀ is the permeability of free space μ₁ is the magnetic dipole of EM 1 μ₂ is the magnetic dipole of EM 2 d is the distance between the dipoles and F₁ is the force acting on EM 1

The identity (x·y)z=(z

y)·x is used to write Eq. (61) as

$\begin{matrix} {{F_{1} = {{- \frac{3\mu_{0}}{4\;\pi\; d^{5}}}{\left( {\left( {d \otimes \mu_{2}} \right) + \left( {\mu_{2} \otimes d} \right) + {\left( {\mu_{2}^{T}{\bullet d}} \right)\left( {I - {5\frac{d \otimes d}{d^{T}{\bullet d}}}} \right)}} \right) \cdot \mu_{1}}}},} & (62) \end{matrix}$ where

is an outer product. Equation (62) can be written as a matrix times a vector, such as, F ₁ =M _(F)(μ₂ ,d)·μ₁,  (63) where

$\begin{matrix} {{M_{F}\left( {\mu_{2},d} \right)} = {{- \frac{3\mu_{0}}{4\;\pi\; d^{5}}}\left( {\left( {d \otimes \mu_{2}} \right) + \left( {\mu_{2} \otimes d} \right) + {\left( {\mu_{2}^{T}{\bullet d}} \right)\left( {I - {5\frac{d \otimes d}{d^{T}{\bullet d}}}} \right)}} \right)}} & (64) \end{matrix}$ The value of writing the force equation in this form is that for a give force it is a simple process to solve for the control input μ₁. Re-Expression of the Force Equation.

First, we will verify the identity (x·y) z=(z

y)·x, and then will show the substitution that gives the matrix form of the force equation. We first verify that (x·y)z=(z

y)·x,  (65) where

$\begin{matrix} {{x = \begin{bmatrix} x_{1} \\ x_{2} \\ x_{3} \end{bmatrix}},{y = \begin{bmatrix} y_{1} \\ y_{2} \\ y_{3} \end{bmatrix}},{{{and}\mspace{14mu} z} = \begin{bmatrix} z_{1} \\ z_{2} \\ z_{3} \end{bmatrix}}} & (66) \end{matrix}$ Multiplying out the left hand side of Eq. (65), we obtain

$\begin{matrix} {{\left( {x \cdot y} \right)z} = {{\left( {{x_{1}y_{1}} + {x_{2}y_{2}} + {x_{3}y_{3}}} \right)\begin{bmatrix} z_{1} \\ z_{2} \\ z_{3} \end{bmatrix}} = \begin{bmatrix} {{z_{1}y_{1}x_{1}} + {z_{1}y_{2}x_{2}} + {z_{1}y_{3}x_{3}}} \\ {{z_{2}y_{1}x_{1}} + {z_{2}y_{2}x_{2}} + {z_{2}y_{3}x_{3}}} \\ {{z_{3}y_{1}x_{1}} + {z_{3}y_{2}x_{2}} + {z_{3}y_{3}x_{3}}} \end{bmatrix}}} & (67) \end{matrix}$

Multiplying out the right hand side we get the same vector. We have shown that (x·y)z=(z

y)·x  (68) Using the identity (68) to bring μ₁ to the right side of each dot product, we have

$\begin{matrix} {F_{1} = {{- \frac{3\;\mu_{0}}{4\;\pi\; d^{5}}}\left( {{\left( {d \otimes \mu_{2}} \right)\mu_{1}} + {\left( {\mu_{2} \otimes d} \right)\mu_{1}} + {\left( {\mu_{2}\bullet\; d} \right)\mu_{1}} - {5\frac{\left( {\mu_{2}\bullet\; d} \right)}{d\; 2}\left( {d \otimes d} \right)\mu_{1}}} \right)}} & (69) \end{matrix}$ Now factoring out μ₁,

$\begin{matrix} {F_{1} = {{- \frac{3\;\mu_{0}}{4\;\pi\; d^{5}}}\left( {\left( {d \otimes \mu_{2}} \right) + \left( {\mu_{2} \otimes d} \right) + \left( {\mu_{2}\bullet\; d} \right) - {5\frac{\left( {\mu_{2}\bullet\; d} \right)}{d\; 2}\left( {d \otimes d} \right)}} \right)\mu_{1}}} & (70) \end{matrix}$ Then factoring (μ₂□d), we have

$\begin{matrix} {F_{1} = {{- \frac{3\;\mu_{0}}{4\;\pi\; d^{5}}}{\left( {\left( {d \otimes \mu_{2}} \right) + \left( {\mu_{2} \otimes d} \right) + {\left( {\mu_{2}^{T}\bullet\; d} \right)\left( {I - {5\frac{\left( {d \otimes \; d} \right)}{d^{T}\bullet\; d}}} \right)}} \right) \cdot {\mu_{1}.}}}} & (71) \end{matrix}$ Expressions for M_(F) and M_(T).

The notation that will be used here is the following.

μ_(ij) is the magnetic dipole moment of the j^(th) EM on the cube.

d_(ijkm) is distance vector from the center of the m^(th) EM on the k^(th) cube to the center of the j^(th) EM on the cube.

F_(ijkm) is the force on the i^(th) cube, j^(th) EM due to the k^(th) cube m^(th) EM.

τ_(ijkm) is the torque on the i^(th) cube, j^(th) EM due to the k^(th) cube m^(th) EM.

rc_(ij) is the moment arm from the center of the i^(th) cube to the center of the j^(th) EM.

Using the above notation, the force and torque equations become

$\begin{matrix} {{Fc}_{i} = {\sum\limits_{j = 1}^{4}{\sum\limits_{{k = 1},{k \neq i}}^{Cubes}{\sum\limits_{m = 1}^{4}F_{ijkm}}}}} & (72) \end{matrix}$

$\begin{matrix} {{\tau\; c_{i}} = {\sum\limits_{j = 1}^{4}{\sum\limits_{{k = 1},{k \neq i}}^{Cubes}{\sum\limits_{m = 1}^{4}\tau_{ijkm}}}}} & (73) \end{matrix}$ where

$\begin{matrix} {F_{ijkm} = {{- \frac{3\;\mu_{0}}{4\pi\; d_{ijkm}^{5}}}\left( {{\left( {\mu_{ij}\bullet\;\mu_{k\; m}} \right)d_{ijkm}} + {\left( {\mu_{ij}\bullet\; d_{ijkm}} \right)\mu_{k\; m}} + {\left( {\mu_{k\; m}\bullet\; d_{ijkm}} \right)\mu_{ij}} - {5\frac{\left( {\mu_{ij}\bullet\; d_{ijkm}} \right)\left( {\mu_{k\; m}\bullet\; d_{ijkm}} \right)}{d_{ijkm}^{2}}d_{ijkm}}} \right)}} & (74) \\ {\tau_{ijkm} = {{\frac{\mu_{0}}{4\pi}\left( {\mu_{ij} \times \left( {{\frac{3\left( {\mu_{k\; m} \cdot d_{ijmk}} \right)}{d_{ijkm}^{5}}d_{ijkm}} - \frac{\mu_{k\; m}}{d_{ijkm}^{3}}} \right)} \right)} + {{rc}_{ij} \times F_{ijmk}}}} & (75) \end{matrix}$ The above equations will be re-expressed to be linear in μ_(ij).

Using the relationship (x·y) z=(z

y)·x=(z

x)·y to factor out μ_(ij) from the dot products, we obtain

$\begin{matrix} {F_{ijkm} = {{- \frac{3\mu_{0}}{4\pi\; d_{ijkm}^{5}}}\left( {\left( {d_{ijkm} \otimes \mu_{k\; m}} \right) + \left( {\mu_{k\; m} \otimes d_{ijkm}} \right) + \left( {\mu_{k\; m}\bullet\; d_{ijkm}} \right) - {5\frac{\left( {\mu_{k\; m}\bullet\; d_{ijkm}} \right)}{d_{ijkm}^{2}}\left( {d_{ijkm} \otimes d_{ijkm}} \right)}} \right)\mu_{ij}}} & (76) \end{matrix}$ Factoring out (μ_(km)□d_(ijkm)) we obtain

$\begin{matrix} {F_{ijkm} = {{- \frac{3\mu_{0}}{4\pi\; d_{ijkm}^{5}}}\left( {\left( {d_{ijkm} \otimes \mu_{k\; m}} \right) + \left( {\mu_{k\; m} \otimes d_{ijkm}} \right) + {\left( {\mu_{k\; m}\bullet\; d_{ijkm}} \right)\left( {I - {5\frac{\left( {d_{ijkm} \otimes d_{ijkm}} \right)}{\left( {d_{ijkm} \cdot d_{ijmk}} \right)}}} \right)}} \right)\mu_{ij}}} & (77) \end{matrix}$ We define the matrix

$\begin{matrix} {{M_{F}\left( {\mu_{k\; m},d_{ijkm}} \right)} = {{- \frac{3\mu_{0}}{4\pi\; d_{ijkm}^{5}}}\left( {\left( {d_{ijkm} \otimes \mu_{k\; m}} \right) + \left( {\mu_{k\; m} \otimes d_{ijkm}} \right) + {\left( {\mu_{k\; m}\bullet\; d_{ijkm}} \right)\left( {I - {5\frac{\left( {d_{ijkm} \otimes d_{ijkm}} \right)}{\left( {d_{ijkm} \cdot d_{ijkm}} \right)}}} \right)}} \right)}} & (78) \end{matrix}$ The force equation is now written as F _(ijkm) =M _(F)(μ_(km) ,d _(ijkm))μ_(ij)  (79)

Now factor out μ_(ij) from the torque equation. The cross product can be written in matrix form as

$\begin{matrix} {{a \times b} = {{\lbrack a\rbrack_{x}b} = {{\begin{bmatrix} 0 & {- a_{3}} & a_{2} \\ a_{3} & 0 & {- a_{1}} \\ {- a_{2}} & a_{1} & 0 \end{bmatrix}\begin{bmatrix} b_{1} \\ b_{2} \\ b_{3} \end{bmatrix}} = {{\lbrack b\rbrack_{x}^{T}a} = {\begin{bmatrix} 0 & b_{3} & {- b_{2}} \\ {- b_{3}} & 0 & b_{1} \\ b_{2} & {- b_{1}} & 0 \end{bmatrix}\begin{bmatrix} a_{1} \\ a_{2} \\ a_{3} \end{bmatrix}}}}}} & (80) \end{matrix}$ We obtain

$\begin{matrix} {\tau_{ijkm} = {{{\frac{\mu_{0}}{4\pi}\left\lbrack {{\frac{3\left( {\mu_{k\; m} \cdot d_{ijkm}} \right)}{d_{ijmk}^{5}}d_{ijkm}} - \frac{\mu_{k\; m}}{d_{ijkm}^{3}}} \right\rbrack}_{x}^{T}\mu_{ij}} + {{rc}_{ij} \times F_{ijkm}}}} & (81) \end{matrix}$ Substituting M_(F) for F_(ijkm), we obtain

$\begin{matrix} {\tau_{ijkm} = {\left( {{\frac{\mu_{0}}{4\pi}\left\lbrack {{\frac{3\left( {\mu_{k\; m} \cdot d_{ijkm}} \right)}{d_{ijkm}^{5}}d_{ijkm}} - \frac{\mu_{k\; m}}{d_{ijkm}^{3}}} \right\rbrack}_{x}^{T} + {\left\lbrack {rc}_{ij} \right\rbrack_{x}{M_{F}\left( {\mu_{k\; m},d_{ijkm}} \right)}}} \right){\mu_{ij}.}}} & (82) \end{matrix}$ We define

$\begin{matrix} {{{M_{\tau}\left( {\mu_{k\; m},d_{ijkm}} \right)} = {{\frac{\mu_{0}}{4\pi}\left\lbrack {{\frac{3\left( {\mu_{k\; m} \cdot d_{ijkm}} \right)}{d_{ijkm}^{5}}d_{ijkm}} - \frac{\mu_{k\; m}}{d_{ijkm}^{3}}} \right\rbrack}_{x}^{T} + {\left\lbrack {rc}_{ij} \right\rbrack_{x}{M_{F}\left( {\mu_{k\; m},d_{ijkm}} \right)}}}},} & (83) \end{matrix}$ τ_(ijkm) =M _(τ)(μ_(km) ,d _(ijkm))μ_(ij).  (84)

Equations (79) and (84) are referred to as a matrix form of the force and torque equations respectively. 

What is claimed is:
 1. A method of monitoring and controlling a second nanosatellite relative to a position of a first nanosatellite, the method comprising: (i) initializing a time interval; (ii) for a present time interval, based on at least measured magnetometer data, estimating a distance vector that extends between a first location associated with a first nanosatellite and a second location associated with a second nanosatellite, the nanosatellites comprising respective first and second plurality of solenoids; (iii) estimating force vectors and torque vectors to move at least the second plurality of solenoids relative to the first nanosatellite; (iv) for at least the second nanosatellite, estimating magnetic dipole moment vectors associated with both force vectors and torque vectors; (v) causing at least the second plurality of solenoids to produce the magnetic dipole moment vectors; (vi) incrementing the present time interval, and returning to step (ii), wherein the first plurality of solenoids is arranged in a rectangular geometry.
 2. The method according to claim 1, wherein the first location is on a first solenoid within the first plurality of solenoids, and the second location is on a second solenoid within the second plurality of solenoids.
 3. The method according to claim 2, wherein the measured magnetometer data comprises a magnetic field vector value associated with the second solenoid.
 4. The method according to claim 3, further comprising using the magnetic field vector value to estimate a magnitude of the distance vector.
 5. The method according to claim 1, wherein each of the first plurality of solenoids is a current-carrying solenoid that can be independently activated.
 6. The method according to claim 1, further comprising using an RF link to communicate commands from the first nanosatellite to the second nanosatellite to control the second plurality of solenoids.
 7. A method of monitoring and controlling a second nanosatellite relative to a position of a first nanosatellite, the method comprising: (i) initializing a time interval; (ii) for a present time interval, based on at least measured magnetometer data, estimating a distance vector that extends between a first location associated with a first nanosatellite and a second location associated with a second nanosatellite, the nanosatellites comprising respective first and second plurality of solenoids, the first location being on a first solenoid within the first plurality of solenoids, the second location being on a second solenoid within the second plurality of solenoids, the measured magnetometer data comprising a magnetic field vector value associated with the second solenoid; (iii) estimating force vectors and torque vectors to move at least the second plurality of solenoids relative to the first nanosatellite; (iv) for at least the second nanosatellite, estimating magnetic dipole moment vectors associated with both force vectors and torque vectors; (v) causing at least the second plurality of solenoids to produce the magnetic dipole moment vectors; (vi) incrementing the present time interval, and returning to step (ii), and (vii) using the magnetic field vector value to estimate a normalized vector value associated with the distance vector.
 8. The method according to claim 7, wherein each of the first plurality of solenoids is a current-carrying solenoid that can be independently activated.
 9. The method according to claim 7, further comprising using an RF link to communicate commands from the first nanosatellite to the second nanosatellite to control the second plurality of solenoids. 